motion detection (foreground detection) (i) ViBe
Zouxy09@qq.com
Http://blog.csdn.net/zouxy09
Because of monitoring the development of the demand, the current prospects of the research is still many, there have been many new methods and ideas. The personal understanding of the following is probably summed up as follows:
Frame difference, background subtraction (G
Motion detection (foreground detection) (1) vibe
Zouxy09@qq.com
Http://blog.csdn.net/zouxy09
Due to the needs of the development of monitoring, there are still a lot of research on foreground detection, and there are also a lot of new methods and ideas. My personal knowledge is summarized as follows:
Frame Difference
This paper introduces the characteristic principle and application scenario of the-LIS3DH accelerometer sensor for wearable devices. ST's LIS3DH is widely used in smart wearable products such as smart hand loops and smart step shoes.LIS3DH has two ways of working, one of which is that it has built-in algorithms to handle common scenarios such as standstill detection, motion
(void *PPRM) function. Specific content, refer to chains_scd_bits_wr.c. (Customized according to DEMO_SCD_BITS_WR.C)Problems you may encounter: the callback thread for link only runs N (6 or finite number of times) issues:Ipcbitslink need to get the empty buffer from the host A8, and to Ipcbitsinhost can continue to take data generated full buffer, reference DEMO_SCD_BITS_WR.C implementationScd_getalgresultbuffer, Scd_releasealgresultbuffer and other functions.==================================
Today see a motion detection algorithm, see his effect seems to be good, free to study
Download demo-82.5 KB Download source-114 kb
Introduction
There are many approaches for motion detection in continuous the video streams. All of t
error, so this method is almost impossible. The second method is the legendary optical flow (light flow), which enters the text below.
Body
The approximate flow of the optical flow method is as follows:
1. Select a large number of optical flow points in a frame image (the specific selection method can be different, such as fast corner point, random selection, etc.).
2. Calculate the motion vectors for all optical flow points (common methods are LK, H
"Required Materials"
BBC micro:bit motherboard x 1
Micro USB Cable x 1
Battery compartment for 2 x 7th (AAA) Batteries × 1
Number 7th (AAA) Battery x 2
Human motion detection sensor x 1
Crocodile Clip x 3
"Circuit wiring Step"
Disconnect the micro:bit from the computer and battery to ensure that the micro:bit is not in the power state.
The power (+) end of the
Human Motion Detection refers to the process of moving the human body in the input video images, including the position, scale, and posture,
Human body tracking is the process of determining the human body correspondence between frames in a video image sequence.
A series of processing methods such as low-pass filtering, background difference, morphological image processing, and Region connectivity analysis
In the. \ opencv \ doc \ vidsurv folder, there are three doc FILES: blob_tracking_modules, blob_tracking_tests, and testseq. Among them, blob_tracking_modules must be read in detail.
"FG/BG Detection"Module into msforeground/background segmentation for each pixel.
"Blob entering Detection"Module uses theresult (fg/BG mask) of" fg/BG detection "module to detect
Common Methods for moving object detection include optical flow, background subtraction, and frame difference ). The Background Subtraction Method and the interframe difference method are suitable for static cameras, while the optical flow method is used for camera motion, but the calculation is relatively large.
The following describes how to use the cvupdatemotionhistory function in opencv to detect
small, ignore it PrintCv2.contourarea (c)ifCv2.contourarea (c) "Min_area"]: Continue #compute the bounding box for the contour, draw it on the frame, #and update the text #calculates the bounding box of the outline, drawing the box in the current frame(x, Y, W, h) =Cv2.boundingrect (c) Cv2.rectangle (frame, (x, y), (x+ W, y + h), (0, 255, 0), 2) Text="occupied" #Draw the text and timestamp on the frame #write text and timestamp on the current frameCv
motion #counterlastuploaded =timestamp Motioncounter=0#Otherwise, the hostel is not occupied Else: Motioncounter=0#Check to see if the frames should is displayed to screen ifconf["Show_video"]: #Display the security feedCv2.imshow ("Security Feed", frame) key= Cv2.waitkey (1) 0xFF#if the ' Q ' key is pressed, break from the Lop ifKey = = Ord ("Q"): Break #clear the stream in preparation for the next
Source code: http://download.csdn.net/detail/nuptboyzhb/3961668
New Content in version 1.0.x
Video motion detection
Ø create menu items, learning opencv --> opencvr entry --> video motion detection
The menu items are set as follows:
Create a Class Wizard
ØEdit code
Voidccvmfcview: onmytestsport ()
{
// Todo: add your
data stream to a Queue, start another thread to process the data slowly. Anyway, I only need to know the result after the event, so it is more important to ensure the real-time raw data.
I declare in advance that due to development reasons, cameras cannot be debugged in the office. I created an ImageStream class to encapsulate the collected video data, because Emgu uses the Image
First, the ImageStream class code is as follows:
Using Emgu. CV; using Emgu. CV. structure; using System. collect
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.